home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / perl / 5.10.0 / CORE / regcharclass.h < prev    next >
Encoding:
C/C++ Source or Header  |  2009-06-26  |  25.7 KB  |  455 lines

  1. /*  -*- buffer-read-only: t -*-
  2.  *
  3.  *    regcharclass.h
  4.  *
  5.  *    Copyright (C) 2007, by Larry Wall and others
  6.  *
  7.  *    You may distribute under the terms of either the GNU General Public
  8.  *    License or the Artistic License, as specified in the README file.
  9.  *
  10.  * !!!!!!!   DO NOT EDIT THIS FILE   !!!!!!!
  11.  * This file is built by Porting/regcharclass.pl.
  12.  * 
  13.  * Any changes made here will be lost!
  14.  *
  15.  */
  16.  
  17. /*
  18.     LNBREAK: Line Break: \R
  19.  
  20.     "\x0D\x0A"      # CRLF - Network (Windows) line ending
  21.     0x0A            # LF  | LINE FEED
  22.     0x0B            # VT  | VERTICAL TAB
  23.     0x0C            # FF  | FORM FEED
  24.     0x0D            # CR  | CARRIAGE RETURN
  25.     0x85            # NEL | NEXT LINE
  26.     0x2028          # LINE SEPARATOR
  27.     0x2029          # PARAGRAPH SEPARATOR
  28. */
  29. /*** GENERATED CODE ***/
  30. #define is_LNBREAK(s,is_utf8)                                               \
  31. ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                        \
  32. : ( 0x0D == ((U8*)s)[0] ) ?                                                 \
  33.     ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                     \
  34. : ( is_utf8 ) ?                                                             \
  35.     ( ( 0xC2 == ((U8*)s)[0] ) ?                                             \
  36.     ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
  37.     : ( 0xE2 == ((U8*)s)[0] ) ?                                             \
  38.     ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
  39.     : 0 )                                                                   \
  40. : ( 0x85 == ((U8*)s)[0] ) )
  41.  
  42. /*** GENERATED CODE ***/
  43. #define is_LNBREAK_safe(s,e,is_utf8)                                        \
  44. ( ((e)-(s) > 2) ?                                                           \
  45.     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
  46.     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
  47.     ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
  48.     : ( is_utf8 ) ?                                                         \
  49.     ( ( 0xC2 == ((U8*)s)[0] ) ?                                         \
  50.         ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                             \
  51.     : ( 0xE2 == ((U8*)s)[0] ) ?                                         \
  52.         ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
  53.     : 0 )                                                               \
  54.     : ( 0x85 == ((U8*)s)[0] ) )                                             \
  55. : ((e)-(s) > 1) ?                                                           \
  56.     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
  57.     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
  58.     ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
  59.     : ( is_utf8 ) ?                                                         \
  60.     ( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 )  \
  61.     : ( 0x85 == ((U8*)s)[0] ) )                                             \
  62. : ((e)-(s) > 0) ?                                                           \
  63.     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
  64.     : ( !( is_utf8 ) ) ?                                                    \
  65.     ( 0x85 == ((U8*)s)[0] )                                             \
  66.     : 0 )                                                                   \
  67. : 0 )
  68.  
  69. /*** GENERATED CODE ***/
  70. #define is_LNBREAK_utf8(s)                                                  \
  71. ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                        \
  72. : ( 0x0D == ((U8*)s)[0] ) ?                                                 \
  73.     ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                     \
  74. : ( 0xC2 == ((U8*)s)[0] ) ?                                                 \
  75.     ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
  76. : ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
  77.     ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
  78. : 0 )
  79.  
  80. /*** GENERATED CODE ***/
  81. #define is_LNBREAK_utf8_safe(s,e)                                           \
  82. ( ((e)-(s) > 2) ?                                                           \
  83.     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
  84.     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
  85.     ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
  86.     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
  87.     ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
  88.     : ( 0xE2 == ((U8*)s)[0] ) ?                                             \
  89.     ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
  90.     : 0 )                                                                   \
  91. : ((e)-(s) > 1) ?                                                           \
  92.     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
  93.     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
  94.     ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
  95.     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
  96.     ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
  97.     : 0 )                                                                   \
  98. : ((e)-(s) > 0) ?                                                           \
  99.     ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D )                          \
  100. : 0 )
  101.  
  102. /*** GENERATED CODE ***/
  103. #define is_LNBREAK_latin1(s)                                                \
  104. ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                        \
  105. : ( 0x0D == ((U8*)s)[0] ) ?                                                 \
  106.     ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                     \
  107. : ( 0x85 == ((U8*)s)[0] ) )
  108.  
  109. /*** GENERATED CODE ***/
  110. #define is_LNBREAK_latin1_safe(s,e)                                         \
  111. ( ((e)-(s) > 1) ?                                                           \
  112.     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0C ) ? 1                    \
  113.     : ( 0x0D == ((U8*)s)[0] ) ?                                             \
  114.     ( ( 0x0A == ((U8*)s)[1] ) ? 2 : 1 )                                 \
  115.     : ( 0x85 == ((U8*)s)[0] ) )                                             \
  116. : ((e)-(s) > 0) ?                                                           \
  117.     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((U8*)s)[0] )\
  118. : 0 )
  119.  
  120. /*
  121.     HORIZWS: Horizontal Whitespace: \h \H
  122.  
  123.     0x09            # HT
  124.     0x20            # SPACE
  125.     0xa0            # NBSP
  126.     0x1680          # OGHAM SPACE MARK
  127.     0x180e          # MONGOLIAN VOWEL SEPARATOR
  128.     0x2000          # EN QUAD
  129.     0x2001          # EM QUAD
  130.     0x2002          # EN SPACE
  131.     0x2003          # EM SPACE
  132.     0x2004          # THREE-PER-EM SPACE
  133.     0x2005          # FOUR-PER-EM SPACE
  134.     0x2006          # SIX-PER-EM SPACE
  135.     0x2007          # FIGURE SPACE
  136.     0x2008          # PUNCTUATION SPACE
  137.     0x2009          # THIN SPACE
  138.     0x200A          # HAIR SPACE
  139.     0x202f          # NARROW NO-BREAK SPACE
  140.     0x205f          # MEDIUM MATHEMATICAL SPACE
  141.     0x3000          # IDEOGRAPHIC SPACE
  142. */
  143. /*** GENERATED CODE ***/
  144. #define is_HORIZWS(s,is_utf8)                                               \
  145. ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                        \
  146. : ( is_utf8 ) ?                                                             \
  147.     ( ( 0xC2 == ((U8*)s)[0] ) ?                                             \
  148.     ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
  149.     : ( 0xE1 == ((U8*)s)[0] ) ?                                             \
  150.     ( ( 0x9A == ((U8*)s)[1] ) ?                                         \
  151.         ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                             \
  152.     : ( 0xA0 == ((U8*)s)[1] ) ?                                         \
  153.         ( ( 0x8E == ((U8*)s)[2] ) ? 3 : 0 )                             \
  154.     : 0 )                                                               \
  155.     : ( 0xE2 == ((U8*)s)[0] ) ?                                             \
  156.     ( ( 0x80 == ((U8*)s)[1] ) ?                                         \
  157.         ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
  158.     : ( 0x81 == ((U8*)s)[1] ) ?                                         \
  159.         ( ( 0x9F == ((U8*)s)[2] ) ? 3 : 0 )                             \
  160.     : 0 )                                                               \
  161.     : ( 0xE3 == ((U8*)s)[0] ) ?                                             \
  162.     ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
  163.     : 0 )                                                                   \
  164. : ( 0xA0 == ((U8*)s)[0] ) )
  165.  
  166. /*** GENERATED CODE ***/
  167. #define is_HORIZWS_safe(s,e,is_utf8)                                        \
  168. ( ((e)-(s) > 2) ?                                                           \
  169.     ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                    \
  170.     : ( is_utf8 ) ?                                                         \
  171.     ( ( 0xC2 == ((U8*)s)[0] ) ?                                         \
  172.         ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 )                             \
  173.     : ( 0xE1 == ((U8*)s)[0] ) ?                                         \
  174.         ( ( 0x9A == ((U8*)s)[1] ) ?                                     \
  175.         ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                         \
  176.         : ( 0xA0 == ((U8*)s)[1] ) ?                                     \
  177.         ( ( 0x8E == ((U8*)s)[2] ) ? 3 : 0 )                         \
  178.         : 0 )                                                           \
  179.     : ( 0xE2 == ((U8*)s)[0] ) ?                                         \
  180.         ( ( 0x80 == ((U8*)s)[1] ) ?                                     \
  181.         ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
  182.         : ( 0x81 == ((U8*)s)[1] ) ?                                     \
  183.         ( ( 0x9F == ((U8*)s)[2] ) ? 3 : 0 )                         \
  184.         : 0 )                                                           \
  185.     : ( 0xE3 == ((U8*)s)[0] ) ?                                         \
  186.         ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )\
  187.     : 0 )                                                               \
  188.     : ( 0xA0 == ((U8*)s)[0] ) )                                             \
  189. : ((e)-(s) > 1) ?                                                           \
  190.     ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                    \
  191.     : ( is_utf8 ) ?                                                         \
  192.     ( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0xA0 == ((U8*)s)[1] ) ) ? 2 : 0 )  \
  193.     : ( 0xA0 == ((U8*)s)[0] ) )                                             \
  194. : ((e)-(s) > 0) ?                                                           \
  195.     ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                    \
  196.     : ( !( is_utf8 ) ) ?                                                    \
  197.     ( 0xA0 == ((U8*)s)[0] )                                             \
  198.     : 0 )                                                                   \
  199. : 0 )
  200.  
  201. /*** GENERATED CODE ***/
  202. #define is_HORIZWS_utf8(s)                                                  \
  203. ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                        \
  204. : ( 0xC2 == ((U8*)s)[0] ) ?                                                 \
  205.     ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
  206. : ( 0xE1 == ((U8*)s)[0] ) ?                                                 \
  207.     ( ( 0x9A == ((U8*)s)[1] ) ?                                             \
  208.     ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                                 \
  209.     : ( 0xA0 == ((U8*)s)[1] ) ?                                             \
  210.     ( ( 0x8E == ((U8*)s)[2] ) ? 3 : 0 )                                 \
  211.     : 0 )                                                                   \
  212. : ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
  213.     ( ( 0x80 == ((U8*)s)[1] ) ?                                             \
  214.     ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
  215.     : ( 0x81 == ((U8*)s)[1] ) ?                                             \
  216.     ( ( 0x9F == ((U8*)s)[2] ) ? 3 : 0 )                                 \
  217.     : 0 )                                                                   \
  218. : ( 0xE3 == ((U8*)s)[0] ) ?                                                 \
  219.     ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )      \
  220. : 0 )
  221.  
  222. /*** GENERATED CODE ***/
  223. #define is_HORIZWS_utf8_safe(s,e)                                           \
  224. ( ((e)-(s) > 2) ?                                                           \
  225.     ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                    \
  226.     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
  227.     ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
  228.     : ( 0xE1 == ((U8*)s)[0] ) ?                                             \
  229.     ( ( 0x9A == ((U8*)s)[1] ) ?                                         \
  230.         ( ( 0x80 == ((U8*)s)[2] ) ? 3 : 0 )                             \
  231.     : ( 0xA0 == ((U8*)s)[1] ) ?                                         \
  232.         ( ( 0x8E == ((U8*)s)[2] ) ? 3 : 0 )                             \
  233.     : 0 )                                                               \
  234.     : ( 0xE2 == ((U8*)s)[0] ) ?                                             \
  235.     ( ( 0x80 == ((U8*)s)[1] ) ?                                         \
  236.         ( ( ( 0x80 <= ((U8*)s)[2] && ((U8*)s)[2] <= 0x8A ) || 0xAF == ((U8*)s)[2] ) ? 3 : 0 )\
  237.     : ( 0x81 == ((U8*)s)[1] ) ?                                         \
  238.         ( ( 0x9F == ((U8*)s)[2] ) ? 3 : 0 )                             \
  239.     : 0 )                                                               \
  240.     : ( 0xE3 == ((U8*)s)[0] ) ?                                             \
  241.     ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0x80 == ((U8*)s)[2] ) ) ? 3 : 0 )  \
  242.     : 0 )                                                                   \
  243. : ((e)-(s) > 1) ?                                                           \
  244.     ( ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] ) ? 1                    \
  245.     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
  246.     ( ( 0xA0 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
  247.     : 0 )                                                                   \
  248. : ((e)-(s) > 0) ?                                                           \
  249.     ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] )                          \
  250. : 0 )
  251.  
  252. /*** GENERATED CODE ***/
  253. #define is_HORIZWS_latin1(s)                                                \
  254. ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] || 0xA0 == ((U8*)s)[0] )
  255.  
  256. /*** GENERATED CODE ***/
  257. #define is_HORIZWS_latin1_safe(s,e)                                         \
  258. ( ((e)-(s) > 0) ?                                                           \
  259.     ( 0x09 == ((U8*)s)[0] || 0x20 == ((U8*)s)[0] || 0xA0 == ((U8*)s)[0] )   \
  260. : 0 )
  261.  
  262. /*** GENERATED CODE ***/
  263. #define is_HORIZWS_cp(cp)                                                   \
  264. ( 0x09 == cp || ( 0x09 < cp &&                                              \
  265. ( 0x20 == cp || ( 0x20 < cp &&                                              \
  266. ( 0xA0 == cp || ( 0xA0 < cp &&                                              \
  267. ( 0x1680 == cp || ( 0x1680 < cp &&                                          \
  268. ( 0x180E == cp || ( 0x180E < cp &&                                          \
  269. ( ( 0x2000 <= cp && cp <= 0x200A ) || ( 0x200A < cp &&                      \
  270. ( 0x202F == cp || ( 0x202F < cp &&                                          \
  271. ( 0x205F == cp || ( 0x205F < cp &&                                          \
  272. 0x3000 == cp ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )
  273.  
  274. /*
  275.     VERTWS: Vertical Whitespace: \v \V
  276.  
  277.     0x0A            # LF
  278.     0x0B            # VT
  279.     0x0C            # FF
  280.     0x0D            # CR
  281.     0x85            # NEL
  282.     0x2028          # LINE SEPARATOR
  283.     0x2029          # PARAGRAPH SEPARATOR
  284. */
  285. /*** GENERATED CODE ***/
  286. #define is_VERTWS(s,is_utf8)                                                \
  287. ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                        \
  288. : ( is_utf8 ) ?                                                             \
  289.     ( ( 0xC2 == ((U8*)s)[0] ) ?                                             \
  290.     ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
  291.     : ( 0xE2 == ((U8*)s)[0] ) ?                                             \
  292.     ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
  293.     : 0 )                                                                   \
  294. : ( 0x85 == ((U8*)s)[0] ) )
  295.  
  296. /*** GENERATED CODE ***/
  297. #define is_VERTWS_safe(s,e,is_utf8)                                         \
  298. ( ((e)-(s) > 2) ?                                                           \
  299.     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
  300.     : ( is_utf8 ) ?                                                         \
  301.     ( ( 0xC2 == ((U8*)s)[0] ) ?                                         \
  302.         ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                             \
  303.     : ( 0xE2 == ((U8*)s)[0] ) ?                                         \
  304.         ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
  305.     : 0 )                                                               \
  306.     : ( 0x85 == ((U8*)s)[0] ) )                                             \
  307. : ((e)-(s) > 1) ?                                                           \
  308.     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
  309.     : ( is_utf8 ) ?                                                         \
  310.     ( ( ( 0xC2 == ((U8*)s)[0] ) && ( 0x85 == ((U8*)s)[1] ) ) ? 2 : 0 )  \
  311.     : ( 0x85 == ((U8*)s)[0] ) )                                             \
  312. : ((e)-(s) > 0) ?                                                           \
  313.     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
  314.     : ( !( is_utf8 ) ) ?                                                    \
  315.     ( 0x85 == ((U8*)s)[0] )                                             \
  316.     : 0 )                                                                   \
  317. : 0 )
  318.  
  319. /*** GENERATED CODE ***/
  320. #define is_VERTWS_utf8(s)                                                   \
  321. ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                        \
  322. : ( 0xC2 == ((U8*)s)[0] ) ?                                                 \
  323.     ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                     \
  324. : ( 0xE2 == ((U8*)s)[0] ) ?                                                 \
  325.     ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
  326. : 0 )
  327.  
  328. /*** GENERATED CODE ***/
  329. #define is_VERTWS_utf8_safe(s,e)                                            \
  330. ( ((e)-(s) > 2) ?                                                           \
  331.     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
  332.     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
  333.     ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
  334.     : ( 0xE2 == ((U8*)s)[0] ) ?                                             \
  335.     ( ( ( 0x80 == ((U8*)s)[1] ) && ( 0xA8 == ((U8*)s)[2] || 0xA9 == ((U8*)s)[2] ) ) ? 3 : 0 )\
  336.     : 0 )                                                                   \
  337. : ((e)-(s) > 1) ?                                                           \
  338.     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) ? 1                    \
  339.     : ( 0xC2 == ((U8*)s)[0] ) ?                                             \
  340.     ( ( 0x85 == ((U8*)s)[1] ) ? 2 : 0 )                                 \
  341.     : 0 )                                                                   \
  342. : ((e)-(s) > 0) ?                                                           \
  343.     ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D )                          \
  344. : 0 )
  345.  
  346. /*** GENERATED CODE ***/
  347. #define is_VERTWS_latin1(s)                                                 \
  348. ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((U8*)s)[0] )
  349.  
  350. /*** GENERATED CODE ***/
  351. #define is_VERTWS_latin1_safe(s,e)                                          \
  352. ( ((e)-(s) > 0) ?                                                           \
  353.     ( ( 0x0A <= ((U8*)s)[0] && ((U8*)s)[0] <= 0x0D ) || 0x85 == ((U8*)s)[0] )\
  354. : 0 )
  355.  
  356. /*** GENERATED CODE ***/
  357. #define is_VERTWS_cp(cp)                                                    \
  358. ( ( 0x0A <= cp && cp <= 0x0D ) || ( 0x0D < cp &&                            \
  359. ( 0x85 == cp || ( 0x85 < cp &&                                              \
  360. ( 0x2028 == cp || ( 0x2028 < cp &&                                          \
  361. 0x2029 == cp ) ) ) ) ) )
  362.  
  363. /*
  364.     TRICKYFOLD: Problematic fold case letters.
  365.  
  366.     0x00DF    # LATIN1 SMALL LETTER SHARP S
  367.     0x0390    # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
  368.     0x03B0    # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
  369. */
  370. /*** GENERATED CODE ***/
  371. #define is_TRICKYFOLD(s,is_utf8)                                            \
  372. ( ( is_utf8 ) ?                                                             \
  373.     ( ( 0xC3 == ((U8*)s)[0] ) ?                                             \
  374.     ( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 )                                 \
  375.     : ( 0xCE == ((U8*)s)[0] ) ?                                             \
  376.     ( ( 0x90 == ((U8*)s)[1] || 0xB0 == ((U8*)s)[1] ) ? 2 : 0 )          \
  377.     : 0 )                                                                   \
  378. : ( 0xDF == ((U8*)s)[0] ) )
  379.  
  380. /*** GENERATED CODE ***/
  381. #define is_TRICKYFOLD_safe(s,e,is_utf8)                                     \
  382. ( ((e)-(s) > 1) ?                                                           \
  383.     ( ( is_utf8 ) ?                                                         \
  384.     ( ( 0xC3 == ((U8*)s)[0] ) ?                                         \
  385.         ( ( 0x9F == ((U8*)s)[1] ) ? 2 : 0 )                             \
  386.     : ( 0xCE == ((U8*)s)[0] ) ?                                         \
  387.         ( ( 0x90 == ((U8*)s)[1] || 0xB0 == ((U8*)s)[1] ) ? 2 : 0 )      \
  388.     : 0 )                                                               \
  389.     : ( 0xDF == ((U8*)s)[0] ) )                                             \
  390. : ((e)-(s) > 0) ?                                                           \
  391.     ( ( !( is_utf8 ) ) ?                                                    \
  392.     ( 0xDF == ((U8*)s)[0] )                                             \
  393.     : 0 )                                                                   \
  394. : 0 )
  395.  
  396. /*** GENERATED CODE ***/
  397. #define is_TRICKYFOLD_cp(cp)                                                \
  398. ( 0xDF == cp || ( 0xDF < cp &&                                              \
  399. ( 0x390 == cp || ( 0x390 < cp &&                                            \
  400. 0x3B0 == cp ) ) ) )
  401.  
  402. /*** GENERATED CODE ***/
  403. #define what_TRICKYFOLD(s,is_utf8)                                          \
  404. ( ( is_utf8 ) ?                                                             \
  405.     ( ( 0xC3 == ((U8*)s)[0] ) ?                                             \
  406.     ( ( 0x9F == ((U8*)s)[1] ) ? 0xDF : 0 )                              \
  407.     : ( 0xCE == ((U8*)s)[0] ) ?                                             \
  408.     ( ( 0x90 == ((U8*)s)[1] ) ? 0x390                                   \
  409.     : ( 0xB0 == ((U8*)s)[1] ) ? 0x3B0 : 0 )                             \
  410.     : 0 )                                                                   \
  411. : ( 0xDF == ((U8*)s)[0] ) ? 0xDF : 0 )
  412.  
  413. /*** GENERATED CODE ***/
  414. #define what_TRICKYFOLD_safe(s,e,is_utf8)                                   \
  415. ( ((e)-(s) > 1) ?                                                           \
  416.     ( ( is_utf8 ) ?                                                         \
  417.     ( ( 0xC3 == ((U8*)s)[0] ) ?                                         \
  418.         ( ( 0x9F == ((U8*)s)[1] ) ? 0xDF : 0 )                          \
  419.     : ( 0xCE == ((U8*)s)[0] ) ?                                         \
  420.         ( ( 0x90 == ((U8*)s)[1] ) ? 0x390                               \
  421.         : ( 0xB0 == ((U8*)s)[1] ) ? 0x3B0 : 0 )                         \
  422.     : 0 )                                                               \
  423.     : ( 0xDF == ((U8*)s)[0] ) ? 0xDF : 0 )                                  \
  424. : ((e)-(s) > 0) ?                                                           \
  425.     ( ( ( !( is_utf8 ) ) && ( 0xDF == ((U8*)s)[0] ) ) ? 0xDF : 0 )          \
  426. : 0 )
  427.  
  428. /*** GENERATED CODE ***/
  429. #define what_len_TRICKYFOLD(s,is_utf8,len)                                  \
  430. ( ( is_utf8 ) ?                                                             \
  431.     ( ( 0xC3 == ((U8*)s)[0] ) ?                                             \
  432.     ( ( 0x9F == ((U8*)s)[1] ) ? len=2, 0xDF : 0 )                       \
  433.     : ( 0xCE == ((U8*)s)[0] ) ?                                             \
  434.     ( ( 0x90 == ((U8*)s)[1] ) ? len=2, 0x390                            \
  435.     : ( 0xB0 == ((U8*)s)[1] ) ? len=2, 0x3B0 : 0 )                      \
  436.     : 0 )                                                                   \
  437. : ( 0xDF == ((U8*)s)[0] ) ? len=1, 0xDF : 0 )
  438.  
  439. /*** GENERATED CODE ***/
  440. #define what_len_TRICKYFOLD_safe(s,e,is_utf8,len)                           \
  441. ( ((e)-(s) > 1) ?                                                           \
  442.     ( ( is_utf8 ) ?                                                         \
  443.     ( ( 0xC3 == ((U8*)s)[0] ) ?                                         \
  444.         ( ( 0x9F == ((U8*)s)[1] ) ? len=2, 0xDF : 0 )                   \
  445.     : ( 0xCE == ((U8*)s)[0] ) ?                                         \
  446.         ( ( 0x90 == ((U8*)s)[1] ) ? len=2, 0x390                        \
  447.         : ( 0xB0 == ((U8*)s)[1] ) ? len=2, 0x3B0 : 0 )                  \
  448.     : 0 )                                                               \
  449.     : ( 0xDF == ((U8*)s)[0] ) ? len=1, 0xDF : 0 )                           \
  450. : ((e)-(s) > 0) ?                                                           \
  451.     ( ( ( !( is_utf8 ) ) && ( 0xDF == ((U8*)s)[0] ) ) ? len=1, 0xDF : 0 )   \
  452. : 0 )
  453.  
  454. /* ex: set ro: */
  455.